//#include<iostream>
//#include<vector>
//#include<string>
//#include"AST_XLab.h"
//#include"SPA_Data_Types.h"
//
//
//using namespace std;
//
//
//typedef int INDEX;
//typedef int STATEMENT_NUMBER;
//typedef bool BOOLEAN;
//typedef vector<INDEX> LIST;
//
//class ModifyUses {
//private:
//	vector<STATEMENT_NUMBER> stmtNo;
//	vector<vector<INDEX>> varUsed;
//	vector<vector<INDEX>> varModified;
//	vector<INDEX> blockEnd;
//	vector<NODE_TYPE> stmttype;
//public:
//	BOOLEAN addEntry(STATEMENT_NUMBER n,LIST usedVar, LIST modifiedVar,NODE_TYPE type,STATEMENT_NUMBER blockEnd);
//	BOOLEAN addEntry(STATEMENT_NUMBER n,NODE_TYPE type,STATEMENT_NUMBER endOfBlock);
//
//	BOOLEAN isModified(STATEMENT_NUMBER n, INDEX ind);
//	BOOLEAN isUsed(STATEMENT_NUMBER n, INDEX ind);
//
//	LIST getVariableList(STATEMENT_NUMBER n, LIST_TYPE type);
//	LIST getVariableList(STATEMENT_NUMBER start,STATEMENT_NUMBER end, LIST_TYPE type);
//
//	NODE_TYPE getType(STATEMENT_NUMBER n);
//
//	STATEMENT_NUMBER getBlockEnd(STATEMENT_NUMBER n);
//	vector<STATEMENT_NUMBER> getFollowing(int , int);
//	vector<STATEMENT_NUMBER> getFollowingT(int , int);
//	vector<STATEMENT_NUMBER> getFollowedby(int , int);
//	vector<STATEMENT_NUMBER> getFollowedbyT(int , int);
//	vector<STATEMENT_NUMBER> getFollow(int t1, int t2, int type1, int type2);
//	vector<STATEMENT_NUMBER> getFollowT(int t1, int t2, int type1, int type2);
//};